package com.zwps.common.core.mybatis.interceptor;

import java.util.Collection;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.zwps.common.api.model.vo.LoginInfoVO;
import com.zwps.common.mybatis.plus.interceptor.ThreadLocalDataPermissionInterceptor;
import com.zwps.common.tool.function.FunT0;
import com.zwps.common.tool.function.FunT1;

/**
 * 当前线程有效的数据过滤条件拦截器
 * 
 * @ClassName: ThreadLocalScopeDataInterceptor
 * @Description:
 * @author lyh
 * @date 2023年9月21日 下午8:26:41
 *
 */
public class ThreadLocalScopeDataInterceptor extends ThreadLocalDataPermissionInterceptor {

    public ThreadLocalScopeDataInterceptor(MybatisPlusInterceptor mybatisPlusInterceptor) {
        mybatisPlusInterceptor.addInnerInterceptor(this);
    }

    /**
     * 通过获取当前用户信息中的内容添加字符串的查询条件
     * @Title: addWhereStringInByLoginInfo
     * @Description: 
     * @param tableName
     * @param columnName
     * @param val 
     * @author lyh
     * @date 2023年9月21日 下午8:27:59
     */
    public void addWhereStringInByLoginInfo(String tableName, String columnName,
            FunT1<LoginInfoVO, Collection<String>> val) {
        addWhereIn(tableName, columnName,
                () -> GlobalScopeDataInterceptor.LOGINED_FUN.apply(tableName, columnName, val));
    }

    public void addWhereStringIn(String tableName, String columnName, FunT0<Collection<String>> val) {
        addWhereIn(tableName, columnName, val);
    }

    public void addWhereStringEq(String tableName, String columnName, FunT0<String> val) {
        addWhereEq(tableName, columnName, val);
    }

}
